/**
 * Copyright 2023-present DreamNum Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import type { IFunctionInfo } from '@univerjs/engine-formula';
import { FUNCTION_NAMES_MATH, FunctionType } from '@univerjs/engine-formula';

export const FUNCTION_LIST_MATH: IFunctionInfo[] = [
    {
        functionName: FUNCTION_NAMES_MATH.ABS,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ABS.description',
        abstract: 'formula.functionList.ABS.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ABS.functionParameter.number.name',
                detail: 'formula.functionList.ABS.functionParameter.number.detail',
                example: '-2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ACOS,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ACOS.description',
        abstract: 'formula.functionList.ACOS.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ACOS.functionParameter.number.name',
                detail: 'formula.functionList.ACOS.functionParameter.number.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ACOSH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ACOSH.description',
        abstract: 'formula.functionList.ACOSH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ACOSH.functionParameter.number.name',
                detail: 'formula.functionList.ACOSH.functionParameter.number.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ACOT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ACOT.description',
        abstract: 'formula.functionList.ACOT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ACOT.functionParameter.number.name',
                detail: 'formula.functionList.ACOT.functionParameter.number.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ACOTH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ACOTH.description',
        abstract: 'formula.functionList.ACOTH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ACOTH.functionParameter.number.name',
                detail: 'formula.functionList.ACOTH.functionParameter.number.detail',
                example: '6',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.AGGREGATE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.AGGREGATE.description',
        abstract: 'formula.functionList.AGGREGATE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.AGGREGATE.functionParameter.number1.name',
                detail: 'formula.functionList.AGGREGATE.functionParameter.number1.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.AGGREGATE.functionParameter.number2.name',
                detail: 'formula.functionList.AGGREGATE.functionParameter.number2.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ARABIC,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ARABIC.description',
        abstract: 'formula.functionList.ARABIC.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ARABIC.functionParameter.text.name',
                detail: 'formula.functionList.ARABIC.functionParameter.text.detail',
                example: '"LVII"',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ASIN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ASIN.description',
        abstract: 'formula.functionList.ASIN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ASIN.functionParameter.number.name',
                detail: 'formula.functionList.ASIN.functionParameter.number.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ASINH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ASINH.description',
        abstract: 'formula.functionList.ASINH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ASINH.functionParameter.number.name',
                detail: 'formula.functionList.ASINH.functionParameter.number.detail',
                example: '10',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ATAN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ATAN.description',
        abstract: 'formula.functionList.ATAN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ATAN.functionParameter.number.name',
                detail: 'formula.functionList.ATAN.functionParameter.number.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ATAN2,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ATAN2.description',
        abstract: 'formula.functionList.ATAN2.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ATAN2.functionParameter.xNum.name',
                detail: 'formula.functionList.ATAN2.functionParameter.xNum.detail',
                example: '4',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ATAN2.functionParameter.yNum.name',
                detail: 'formula.functionList.ATAN2.functionParameter.yNum.detail',
                example: '3',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ATANH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ATANH.description',
        abstract: 'formula.functionList.ATANH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ATANH.functionParameter.number.name',
                detail: 'formula.functionList.ATANH.functionParameter.number.detail',
                example: '0.1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.BASE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.BASE.description',
        abstract: 'formula.functionList.BASE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.BASE.functionParameter.number.name',
                detail: 'formula.functionList.BASE.functionParameter.number.detail',
                example: '15',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.BASE.functionParameter.radix.name',
                detail: 'formula.functionList.BASE.functionParameter.radix.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.BASE.functionParameter.minLength.name',
                detail: 'formula.functionList.BASE.functionParameter.minLength.detail',
                example: '10',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.CEILING,
        functionType: FunctionType.Math,
        description: 'formula.functionList.CEILING.description',
        abstract: 'formula.functionList.CEILING.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.CEILING.functionParameter.number.name',
                detail: 'formula.functionList.CEILING.functionParameter.number.detail',
                example: '2.5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.CEILING.functionParameter.significance.name',
                detail: 'formula.functionList.CEILING.functionParameter.significance.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.CEILING_MATH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.CEILING_MATH.description',
        abstract: 'formula.functionList.CEILING_MATH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.CEILING_MATH.functionParameter.number.name',
                detail: 'formula.functionList.CEILING_MATH.functionParameter.number.detail',
                example: '-5.5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.CEILING_MATH.functionParameter.significance.name',
                detail: 'formula.functionList.CEILING_MATH.functionParameter.significance.detail',
                example: '2',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.CEILING_MATH.functionParameter.mode.name',
                detail: 'formula.functionList.CEILING_MATH.functionParameter.mode.detail',
                example: '-1',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.CEILING_PRECISE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.CEILING_PRECISE.description',
        abstract: 'formula.functionList.CEILING_PRECISE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.CEILING_PRECISE.functionParameter.number.name',
                detail: 'formula.functionList.CEILING_PRECISE.functionParameter.number.detail',
                example: '4.3',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.CEILING_PRECISE.functionParameter.significance.name',
                detail: 'formula.functionList.CEILING_PRECISE.functionParameter.significance.detail',
                example: '2',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COMBIN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COMBIN.description',
        abstract: 'formula.functionList.COMBIN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COMBIN.functionParameter.number.name',
                detail: 'formula.functionList.COMBIN.functionParameter.number.detail',
                example: '8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.COMBIN.functionParameter.numberChosen.name',
                detail: 'formula.functionList.COMBIN.functionParameter.numberChosen.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COMBINA,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COMBINA.description',
        abstract: 'formula.functionList.COMBINA.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COMBINA.functionParameter.number.name',
                detail: 'formula.functionList.COMBINA.functionParameter.number.detail',
                example: '8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.COMBINA.functionParameter.numberChosen.name',
                detail: 'formula.functionList.COMBINA.functionParameter.numberChosen.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COS,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COS.description',
        abstract: 'formula.functionList.COS.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COS.functionParameter.number.name',
                detail: 'formula.functionList.COS.functionParameter.number.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COSH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COSH.description',
        abstract: 'formula.functionList.COSH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COSH.functionParameter.number.name',
                detail: 'formula.functionList.COSH.functionParameter.number.detail',
                example: '4',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COT.description',
        abstract: 'formula.functionList.COT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COT.functionParameter.number.name',
                detail: 'formula.functionList.COT.functionParameter.number.detail',
                example: '30',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.COTH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.COTH.description',
        abstract: 'formula.functionList.COTH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.COTH.functionParameter.number.name',
                detail: 'formula.functionList.COTH.functionParameter.number.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.CSC,
        functionType: FunctionType.Math,
        description: 'formula.functionList.CSC.description',
        abstract: 'formula.functionList.CSC.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.CSC.functionParameter.number.name',
                detail: 'formula.functionList.CSC.functionParameter.number.detail',
                example: '15',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.CSCH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.CSCH.description',
        abstract: 'formula.functionList.CSCH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.CSCH.functionParameter.number.name',
                detail: 'formula.functionList.CSCH.functionParameter.number.detail',
                example: '1.5',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.DECIMAL,
        functionType: FunctionType.Math,
        description: 'formula.functionList.DECIMAL.description',
        abstract: 'formula.functionList.DECIMAL.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.DECIMAL.functionParameter.text.name',
                detail: 'formula.functionList.DECIMAL.functionParameter.text.detail',
                example: '"FF"',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.DECIMAL.functionParameter.radix.name',
                detail: 'formula.functionList.DECIMAL.functionParameter.radix.detail',
                example: '16',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.DEGREES,
        functionType: FunctionType.Math,
        description: 'formula.functionList.DEGREES.description',
        abstract: 'formula.functionList.DEGREES.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.DEGREES.functionParameter.angle.name',
                detail: 'formula.functionList.DEGREES.functionParameter.angle.detail',
                example: 'PI()',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.EVEN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.EVEN.description',
        abstract: 'formula.functionList.EVEN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.EVEN.functionParameter.number.name',
                detail: 'formula.functionList.EVEN.functionParameter.number.detail',
                example: '1.5',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.EXP,
        functionType: FunctionType.Math,
        description: 'formula.functionList.EXP.description',
        abstract: 'formula.functionList.EXP.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.EXP.functionParameter.number.name',
                detail: 'formula.functionList.EXP.functionParameter.number.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.FACT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.FACT.description',
        abstract: 'formula.functionList.FACT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.FACT.functionParameter.number.name',
                detail: 'formula.functionList.FACT.functionParameter.number.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.FACTDOUBLE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.FACTDOUBLE.description',
        abstract: 'formula.functionList.FACTDOUBLE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.FACTDOUBLE.functionParameter.number.name',
                detail: 'formula.functionList.FACTDOUBLE.functionParameter.number.detail',
                example: '6',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.FLOOR,
        functionType: FunctionType.Math,
        description: 'formula.functionList.FLOOR.description',
        abstract: 'formula.functionList.FLOOR.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.FLOOR.functionParameter.number.name',
                detail: 'formula.functionList.FLOOR.functionParameter.number.detail',
                example: '3.7',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.FLOOR.functionParameter.significance.name',
                detail: 'formula.functionList.FLOOR.functionParameter.significance.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.FLOOR_MATH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.FLOOR_MATH.description',
        abstract: 'formula.functionList.FLOOR_MATH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.FLOOR_MATH.functionParameter.number.name',
                detail: 'formula.functionList.FLOOR_MATH.functionParameter.number.detail',
                example: '-5.5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.FLOOR_MATH.functionParameter.significance.name',
                detail: 'formula.functionList.FLOOR_MATH.functionParameter.significance.detail',
                example: '2',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.FLOOR_MATH.functionParameter.mode.name',
                detail: 'formula.functionList.FLOOR_MATH.functionParameter.mode.detail',
                example: '-1',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.FLOOR_PRECISE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.FLOOR_PRECISE.description',
        abstract: 'formula.functionList.FLOOR_PRECISE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.FLOOR_PRECISE.functionParameter.number.name',
                detail: 'formula.functionList.FLOOR_PRECISE.functionParameter.number.detail',
                example: '-3.2',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.FLOOR_PRECISE.functionParameter.significance.name',
                detail: 'formula.functionList.FLOOR_PRECISE.functionParameter.significance.detail',
                example: '-1',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.GCD,
        functionType: FunctionType.Math,
        description: 'formula.functionList.GCD.description',
        abstract: 'formula.functionList.GCD.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.GCD.functionParameter.number1.name',
                detail: 'formula.functionList.GCD.functionParameter.number1.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.GCD.functionParameter.number2.name',
                detail: 'formula.functionList.GCD.functionParameter.number2.detail',
                example: '2',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.INT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.INT.description',
        abstract: 'formula.functionList.INT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.INT.functionParameter.number.name',
                detail: 'formula.functionList.INT.functionParameter.number.detail',
                example: '8.9',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ISO_CEILING,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ISO_CEILING.description',
        abstract: 'formula.functionList.ISO_CEILING.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ISO_CEILING.functionParameter.number1.name',
                detail: 'formula.functionList.ISO_CEILING.functionParameter.number1.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ISO_CEILING.functionParameter.number2.name',
                detail: 'formula.functionList.ISO_CEILING.functionParameter.number2.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.LCM,
        functionType: FunctionType.Math,
        description: 'formula.functionList.LCM.description',
        abstract: 'formula.functionList.LCM.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.LCM.functionParameter.number1.name',
                detail: 'formula.functionList.LCM.functionParameter.number1.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.LCM.functionParameter.number2.name',
                detail: 'formula.functionList.LCM.functionParameter.number2.detail',
                example: '2',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.LET,
        functionType: FunctionType.Math,
        description: 'formula.functionList.LET.description',
        abstract: 'formula.functionList.LET.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.LET.functionParameter.number1.name',
                detail: 'formula.functionList.LET.functionParameter.number1.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.LET.functionParameter.number2.name',
                detail: 'formula.functionList.LET.functionParameter.number2.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.LN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.LN.description',
        abstract: 'formula.functionList.LN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.LN.functionParameter.number.name',
                detail: 'formula.functionList.LN.functionParameter.number.detail',
                example: 'EXP(3)',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.LOG,
        functionType: FunctionType.Math,
        description: 'formula.functionList.LOG.description',
        abstract: 'formula.functionList.LOG.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.LOG.functionParameter.number.name',
                detail: 'formula.functionList.LOG.functionParameter.number.detail',
                example: '8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.LOG.functionParameter.base.name',
                detail: 'formula.functionList.LOG.functionParameter.base.detail',
                example: '2',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.LOG10,
        functionType: FunctionType.Math,
        description: 'formula.functionList.LOG10.description',
        abstract: 'formula.functionList.LOG10.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.LOG10.functionParameter.number.name',
                detail: 'formula.functionList.LOG10.functionParameter.number.detail',
                example: '100000',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MDETERM,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MDETERM.description',
        abstract: 'formula.functionList.MDETERM.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MDETERM.functionParameter.array.name',
                detail: 'formula.functionList.MDETERM.functionParameter.array.detail',
                example: 'A1:C3',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MINVERSE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MINVERSE.description',
        abstract: 'formula.functionList.MINVERSE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MINVERSE.functionParameter.array.name',
                detail: 'formula.functionList.MINVERSE.functionParameter.array.detail',
                example: 'A1:C3',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MMULT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MMULT.description',
        abstract: 'formula.functionList.MMULT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MMULT.functionParameter.array1.name',
                detail: 'formula.functionList.MMULT.functionParameter.array1.detail',
                example: 'A2:B3',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.MMULT.functionParameter.array2.name',
                detail: 'formula.functionList.MMULT.functionParameter.array2.detail',
                example: 'A5:B6',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MOD,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MOD.description',
        abstract: 'formula.functionList.MOD.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MOD.functionParameter.number.name',
                detail: 'formula.functionList.MOD.functionParameter.number.detail',
                example: '3',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.MOD.functionParameter.divisor.name',
                detail: 'formula.functionList.MOD.functionParameter.divisor.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MROUND,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MROUND.description',
        abstract: 'formula.functionList.MROUND.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MROUND.functionParameter.number.name',
                detail: 'formula.functionList.MROUND.functionParameter.number.detail',
                example: '10',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.MROUND.functionParameter.multiple.name',
                detail: 'formula.functionList.MROUND.functionParameter.multiple.detail',
                example: '3',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MULTINOMIAL,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MULTINOMIAL.description',
        abstract: 'formula.functionList.MULTINOMIAL.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MULTINOMIAL.functionParameter.number1.name',
                detail: 'formula.functionList.MULTINOMIAL.functionParameter.number1.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.MULTINOMIAL.functionParameter.number2.name',
                detail: 'formula.functionList.MULTINOMIAL.functionParameter.number2.detail',
                example: '2',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.MUNIT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.MUNIT.description',
        abstract: 'formula.functionList.MUNIT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.MUNIT.functionParameter.dimension.name',
                detail: 'formula.functionList.MUNIT.functionParameter.dimension.detail',
                example: '3',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ODD,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ODD.description',
        abstract: 'formula.functionList.ODD.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ODD.functionParameter.number.name',
                detail: 'formula.functionList.ODD.functionParameter.number.detail',
                example: '1.5',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.PI,
        functionType: FunctionType.Math,
        description: 'formula.functionList.PI.description',
        abstract: 'formula.functionList.PI.abstract',
        functionParameter: [
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.POWER,
        functionType: FunctionType.Math,
        description: 'formula.functionList.POWER.description',
        abstract: 'formula.functionList.POWER.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.POWER.functionParameter.number.name',
                detail: 'formula.functionList.POWER.functionParameter.number.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.POWER.functionParameter.power.name',
                detail: 'formula.functionList.POWER.functionParameter.power.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.PRODUCT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.PRODUCT.description',
        abstract: 'formula.functionList.PRODUCT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.PRODUCT.functionParameter.number1.name',
                detail: 'formula.functionList.PRODUCT.functionParameter.number1.detail',
                example: 'A1',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.PRODUCT.functionParameter.number2.name',
                detail: 'formula.functionList.PRODUCT.functionParameter.number2.detail',
                example: 'A2',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.QUOTIENT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.QUOTIENT.description',
        abstract: 'formula.functionList.QUOTIENT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.QUOTIENT.functionParameter.numerator.name',
                detail: 'formula.functionList.QUOTIENT.functionParameter.numerator.detail',
                example: '5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.QUOTIENT.functionParameter.denominator.name',
                detail: 'formula.functionList.QUOTIENT.functionParameter.denominator.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.RADIANS,
        functionType: FunctionType.Math,
        description: 'formula.functionList.RADIANS.description',
        abstract: 'formula.functionList.RADIANS.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.RADIANS.functionParameter.angle.name',
                detail: 'formula.functionList.RADIANS.functionParameter.angle.detail',
                example: '270',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.RAND,
        functionType: FunctionType.Math,
        description: 'formula.functionList.RAND.description',
        abstract: 'formula.functionList.RAND.abstract',
        functionParameter: [
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.RANDARRAY,
        functionType: FunctionType.Math,
        description: 'formula.functionList.RANDARRAY.description',
        abstract: 'formula.functionList.RANDARRAY.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.RANDARRAY.functionParameter.rows.name',
                detail: 'formula.functionList.RANDARRAY.functionParameter.rows.detail',
                example: '5',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.RANDARRAY.functionParameter.columns.name',
                detail: 'formula.functionList.RANDARRAY.functionParameter.columns.detail',
                example: '3',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.RANDARRAY.functionParameter.min.name',
                detail: 'formula.functionList.RANDARRAY.functionParameter.min.detail',
                example: '1',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.RANDARRAY.functionParameter.max.name',
                detail: 'formula.functionList.RANDARRAY.functionParameter.max.detail',
                example: '100',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.RANDARRAY.functionParameter.wholeNumber.name',
                detail: 'formula.functionList.RANDARRAY.functionParameter.wholeNumber.detail',
                example: 'TRUE',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.RANDBETWEEN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.RANDBETWEEN.description',
        abstract: 'formula.functionList.RANDBETWEEN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.RANDBETWEEN.functionParameter.bottom.name',
                detail: 'formula.functionList.RANDBETWEEN.functionParameter.bottom.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.RANDBETWEEN.functionParameter.top.name',
                detail: 'formula.functionList.RANDBETWEEN.functionParameter.top.detail',
                example: '100',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ROMAN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ROMAN.description',
        abstract: 'formula.functionList.ROMAN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ROMAN.functionParameter.number.name',
                detail: 'formula.functionList.ROMAN.functionParameter.number.detail',
                example: '499',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ROMAN.functionParameter.form.name',
                detail: 'formula.functionList.ROMAN.functionParameter.form.detail',
                example: '0',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ROUND,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ROUND.description',
        abstract: 'formula.functionList.ROUND.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ROUND.functionParameter.number.name',
                detail: 'formula.functionList.ROUND.functionParameter.number.detail',
                example: '2.15',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ROUND.functionParameter.numDigits.name',
                detail: 'formula.functionList.ROUND.functionParameter.numDigits.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ROUNDBANK,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ROUNDBANK.description',
        abstract: 'formula.functionList.ROUNDBANK.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ROUNDBANK.functionParameter.number.name',
                detail: 'formula.functionList.ROUNDBANK.functionParameter.number.detail',
                example: '2.345',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ROUNDBANK.functionParameter.numDigits.name',
                detail: 'formula.functionList.ROUNDBANK.functionParameter.numDigits.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ROUNDDOWN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ROUNDDOWN.description',
        abstract: 'formula.functionList.ROUNDDOWN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ROUNDDOWN.functionParameter.number.name',
                detail: 'formula.functionList.ROUNDDOWN.functionParameter.number.detail',
                example: '3.2',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ROUNDDOWN.functionParameter.numDigits.name',
                detail: 'formula.functionList.ROUNDDOWN.functionParameter.numDigits.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.ROUNDUP,
        functionType: FunctionType.Math,
        description: 'formula.functionList.ROUNDUP.description',
        abstract: 'formula.functionList.ROUNDUP.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.ROUNDUP.functionParameter.number.name',
                detail: 'formula.functionList.ROUNDUP.functionParameter.number.detail',
                example: '3.2',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.ROUNDUP.functionParameter.numDigits.name',
                detail: 'formula.functionList.ROUNDUP.functionParameter.numDigits.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SEC,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SEC.description',
        abstract: 'formula.functionList.SEC.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SEC.functionParameter.number.name',
                detail: 'formula.functionList.SEC.functionParameter.number.detail',
                example: '30',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SECH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SECH.description',
        abstract: 'formula.functionList.SECH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SECH.functionParameter.number.name',
                detail: 'formula.functionList.SECH.functionParameter.number.detail',
                example: '30',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SERIESSUM,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SERIESSUM.description',
        abstract: 'formula.functionList.SERIESSUM.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SERIESSUM.functionParameter.x.name',
                detail: 'formula.functionList.SERIESSUM.functionParameter.x.detail',
                example: '0.785398163',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SERIESSUM.functionParameter.n.name',
                detail: 'formula.functionList.SERIESSUM.functionParameter.n.detail',
                example: '0',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SERIESSUM.functionParameter.m.name',
                detail: 'formula.functionList.SERIESSUM.functionParameter.m.detail',
                example: '2',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SERIESSUM.functionParameter.coefficients.name',
                detail: 'formula.functionList.SERIESSUM.functionParameter.coefficients.detail',
                example: 'A1:A4',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SEQUENCE,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SEQUENCE.description',
        abstract: 'formula.functionList.SEQUENCE.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SEQUENCE.functionParameter.rows.name',
                detail: 'formula.functionList.SEQUENCE.functionParameter.rows.detail',
                example: '4',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SEQUENCE.functionParameter.columns.name',
                detail: 'formula.functionList.SEQUENCE.functionParameter.columns.detail',
                example: '5',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SEQUENCE.functionParameter.start.name',
                detail: 'formula.functionList.SEQUENCE.functionParameter.start.detail',
                example: '1',
                require: 0,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SEQUENCE.functionParameter.step.name',
                detail: 'formula.functionList.SEQUENCE.functionParameter.step.detail',
                example: '1',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SIGN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SIGN.description',
        abstract: 'formula.functionList.SIGN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SIGN.functionParameter.number.name',
                detail: 'formula.functionList.SIGN.functionParameter.number.detail',
                example: '10',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SIN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SIN.description',
        abstract: 'formula.functionList.SIN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SIN.functionParameter.number.name',
                detail: 'formula.functionList.SIN.functionParameter.number.detail',
                example: '30*PI()/180',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SINH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SINH.description',
        abstract: 'formula.functionList.SINH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SINH.functionParameter.number.name',
                detail: 'formula.functionList.SINH.functionParameter.number.detail',
                example: '0.0342*1.03',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SQRT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SQRT.description',
        abstract: 'formula.functionList.SQRT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SQRT.functionParameter.number.name',
                detail: 'formula.functionList.SQRT.functionParameter.number.detail',
                example: '16',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SQRTPI,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SQRTPI.description',
        abstract: 'formula.functionList.SQRTPI.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SQRTPI.functionParameter.number.name',
                detail: 'formula.functionList.SQRTPI.functionParameter.number.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUBTOTAL,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUBTOTAL.description',
        abstract: 'formula.functionList.SUBTOTAL.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUBTOTAL.functionParameter.functionNum.name',
                detail: 'formula.functionList.SUBTOTAL.functionParameter.functionNum.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUBTOTAL.functionParameter.ref1.name',
                detail: 'formula.functionList.SUBTOTAL.functionParameter.ref1.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUBTOTAL.functionParameter.ref2.name',
                detail: 'formula.functionList.SUBTOTAL.functionParameter.ref2.detail',
                example: 'B1:B20',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUM,
        aliasFunctionName: 'formula.functionList.SUM.aliasFunctionName',
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUM.description',
        abstract: 'formula.functionList.SUM.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUM.functionParameter.number1.name',
                detail: 'formula.functionList.SUM.functionParameter.number1.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUM.functionParameter.number2.name',
                detail: 'formula.functionList.SUM.functionParameter.number2.detail',
                example: 'B2:B10',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMIF,
        aliasFunctionName: 'formula.functionList.SUMIF.aliasFunctionName',
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMIF.description',
        abstract: 'formula.functionList.SUMIF.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMIF.functionParameter.range.name',
                detail: 'formula.functionList.SUMIF.functionParameter.range.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMIF.functionParameter.criteria.name',
                detail: 'formula.functionList.SUMIF.functionParameter.criteria.detail',
                example: '">5"',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMIF.functionParameter.sumRange.name',
                detail: 'formula.functionList.SUMIF.functionParameter.sumRange.detail',
                example: 'B1:B20',
                require: 0,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMIFS,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMIFS.description',
        abstract: 'formula.functionList.SUMIFS.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMIFS.functionParameter.sumRange.name',
                detail: 'formula.functionList.SUMIFS.functionParameter.sumRange.detail',
                example: 'A1:A20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMIFS.functionParameter.criteriaRange1.name',
                detail: 'formula.functionList.SUMIFS.functionParameter.criteriaRange1.detail',
                example: 'B1:B20',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMIFS.functionParameter.criteria1.name',
                detail: 'formula.functionList.SUMIFS.functionParameter.criteria1.detail',
                example: '">10"',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMIFS.functionParameter.criteriaRange2.name',
                detail: 'formula.functionList.SUMIFS.functionParameter.criteriaRange2.detail',
                example: 'C1:C20',
                require: 0,
                repeat: 1,
            },
            {
                name: 'formula.functionList.SUMIFS.functionParameter.criteria2.name',
                detail: 'formula.functionList.SUMIFS.functionParameter.criteria2.detail',
                example: '"<20"',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMPRODUCT,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMPRODUCT.description',
        abstract: 'formula.functionList.SUMPRODUCT.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMPRODUCT.functionParameter.array1.name',
                detail: 'formula.functionList.SUMPRODUCT.functionParameter.array1.detail',
                example: 'C2:C5',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMPRODUCT.functionParameter.array2.name',
                detail: 'formula.functionList.SUMPRODUCT.functionParameter.array2.detail',
                example: 'D2:D5',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMSQ,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMSQ.description',
        abstract: 'formula.functionList.SUMSQ.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMSQ.functionParameter.number1.name',
                detail: 'formula.functionList.SUMSQ.functionParameter.number1.detail',
                example: '3',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMSQ.functionParameter.number2.name',
                detail: 'formula.functionList.SUMSQ.functionParameter.number2.detail',
                example: '4',
                require: 0,
                repeat: 1,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMX2MY2,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMX2MY2.description',
        abstract: 'formula.functionList.SUMX2MY2.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMX2MY2.functionParameter.arrayX.name',
                detail: 'formula.functionList.SUMX2MY2.functionParameter.arrayX.detail',
                example: 'A2:A8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMX2MY2.functionParameter.arrayY.name',
                detail: 'formula.functionList.SUMX2MY2.functionParameter.arrayY.detail',
                example: 'B2:B8',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMX2PY2,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMX2PY2.description',
        abstract: 'formula.functionList.SUMX2PY2.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMX2PY2.functionParameter.arrayX.name',
                detail: 'formula.functionList.SUMX2PY2.functionParameter.arrayX.detail',
                example: 'A2:A8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMX2PY2.functionParameter.arrayY.name',
                detail: 'formula.functionList.SUMX2PY2.functionParameter.arrayY.detail',
                example: 'B2:B8',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.SUMXMY2,
        functionType: FunctionType.Math,
        description: 'formula.functionList.SUMXMY2.description',
        abstract: 'formula.functionList.SUMXMY2.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.SUMXMY2.functionParameter.arrayX.name',
                detail: 'formula.functionList.SUMXMY2.functionParameter.arrayX.detail',
                example: 'A2:A8',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.SUMXMY2.functionParameter.arrayY.name',
                detail: 'formula.functionList.SUMXMY2.functionParameter.arrayY.detail',
                example: 'B2:B8',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.TAN,
        functionType: FunctionType.Math,
        description: 'formula.functionList.TAN.description',
        abstract: 'formula.functionList.TAN.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.TAN.functionParameter.number.name',
                detail: 'formula.functionList.TAN.functionParameter.number.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.TANH,
        functionType: FunctionType.Math,
        description: 'formula.functionList.TANH.description',
        abstract: 'formula.functionList.TANH.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.TANH.functionParameter.number.name',
                detail: 'formula.functionList.TANH.functionParameter.number.detail',
                example: '1',
                require: 1,
                repeat: 0,
            },
        ],
    },
    {
        functionName: FUNCTION_NAMES_MATH.TRUNC,
        functionType: FunctionType.Math,
        description: 'formula.functionList.TRUNC.description',
        abstract: 'formula.functionList.TRUNC.abstract',
        functionParameter: [
            {
                name: 'formula.functionList.TRUNC.functionParameter.number.name',
                detail: 'formula.functionList.TRUNC.functionParameter.number.detail',
                example: '0.45',
                require: 1,
                repeat: 0,
            },
            {
                name: 'formula.functionList.TRUNC.functionParameter.numDigits.name',
                detail: 'formula.functionList.TRUNC.functionParameter.numDigits.detail',
                example: '1',
                require: 0,
                repeat: 0,
            },
        ],
    },
];
